import player from "./player";

export default class extends Laya.Script {

    //挂在柱子预制体上的移动脚本

    //设置自身为Sprit精灵类型，方便获取Script的各种属性
    owner=this.owner as Laya.Sprite;
    //设置一个新刚体，用来装获取来的刚体组件
    moveSprite = new Laya.RigidBody;
    //设置游戏结束开关
    isOver = false;
    constructor() { super(); }
    onAwake(){
        //获取自身的刚体组件
        this.moveSprite = this.owner.getComponent(Laya.RigidBody);
        //设置自身刚体组件的x线性速度，达到移动效果
        this.moveSprite.linearVelocity={x:-10,y:0};
        //监听Again事件，调用Again方法，就是再来一次方法
        Laya.stage.on("Again",this,this.Again);
        
    }
    onLateUpdate(): void {
        //但柱子x位置小于-200，就是移出屏幕后执行
        if(this.owner.x < -200){
            //从父容器中删除自身，就是看不见了
            this.owner.removeSelf();
            //通过标示将自身回收到对象池
            Laya.Pool.recover("zhu",this.owner);
        }
        //获取玩家身上的游戏结束开关状态，
        //可以用在上面的onAwake()中加入console.log(this.owner.stage)
        //然后再浏览器调试中按F12，调出控制台，看返回结果
        //找到下面的_children，点开，再找，直到找到_children: Array(8)，有多个子类的_children
        //里面就是场景中的各个组件，我最后用getChildByName，通过名字获取子类
        this.isOver = Laya.stage.getChildAt(0).getChildAt(0).getChildByName("Player").getComponent(player).isOver;
        //判断玩家下的游戏开关是否结束，是则执行
        if(this.isOver){
            //将自身刚体的线性速度设成0，就不移动了
            this.moveSprite.linearVelocity={x:0,y:0};
        }
    }
    //再来一次方法
    Again(){
        //从父容器中删除自身
        this.owner.removeSelf();
        //通过标示将自身回收到对象池
        Laya.Pool.recover("zhu",this.owner);
    }
    }